Thermal printers are commonly employed to produce high resolution labels, bar codes and the like. Typically, a processor, such as for example a personal computer (PC), is initially utilized to lay out a particular label or other item to be printed. The material to be printed is then loaded into a special purpose controller, which is normally microprocessor based, the thermal printer being operated from the controller.
Such microprocessor-based controllers have a number of limitations and other disadvantages. The high cost of these units is disadvantageous both because of the initial cost to the customer, and because the cost makes it impractical to merely swap a controller in the field if problems develop, requiring expensive service calls and other maintenance problems.
A second problem with controllers of this type is that their features are frozen at the time the operating program for the controller is burned into the controller ROM. While as many features as possible are normally fit into the limited memory space available, a simple change like providing a non-standard font would generally require creating a special version of the ROM. Since the ROM is generally not considered a user replaceable part, the cost of upgrades to either provide new features or to fix bugs is relatively high.
Finally, microprocessor based controllers are relatively large, the controller board being as large as 5.times.8 inches. In some applications, where space is limited, the size of such boards may make it impractical to use a thermal printer; and in any event, more careful, more expensive design may be required in order to accommodate the board on a standard printer.
One potential solution to the various problems discussed above is to use the same PC or other computer which was used to generate the item to be printed to also control the thermal printer. This would eliminate the requirement for a separate microprocessor-based controller, thus presumably reducing controller costs, and would provide far greater flexibility in that a software based system could be upgraded by merely providing a new disk or other storage medium containing a desired programming change. It might also be possible to make such changes on line to a number of printers in a system through the use of modems or other standard networking techniques.
A problem in thermal printer controllers, whether microprocessor-based or utilizing a PC or other computers is that, while printing may be accomplished more rapidly if an entire line of data to be printed is strobed at the same time, this results in a very high peak current during strobing. The requirement for such high peak currents may be unacceptable in many applications. Therefore, a line of data to be printed is typically divided into a number of sections, each of which may be independently strobed. Thus, depending on the acceptable peak current for the system, it may be desirable to strobe each of the sections of the line separately, or to strobe some selected combination of two or more of the sections simultaneously. It is preferable that the strobing sequence for each line to be printed, which line may for example not have data in all byte positions, be program controllable so as to permit any one or more sections for the line to be strobed during a given strobe cycle, and thus to provide maximum flexibility. Current microprocessor-based systems do not provide this capability.
A need therefore exists for an improved interface for permitting peak current in a thermal printer to be controlled by flexibly strobing one or more sections of a line to be printed during each strobe cycle.